package com.box1312.fishpond;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface LevelCommands {

  byte[] EXIST = { 1 };

  String set(String key, String value);

  byte[] set(String key, byte[] value);

  String get(String key);

  byte[] get(byte[] key);

  Boolean exists(String key);

  void del(String... key);

  Long incrBy(String key, long increment);

  Long incr(String key);

  Long decrBy(String key, long decrement);

  Long decr(String key);

  void hset(String key, String field, String value);

  String hget(String key, String field);

  void hdel(String key, String... field);

  Integer hlen(String key);

  Boolean hexists(String key, String field);

  Map<String, String> hgetAll(String key);

  Set<String> hkeys(String key);

  List<String> hvals(String key);

  void close() throws LevelStoreException;
}
